#pragma once

// static __forceinline void cycles_do_special()
// {
// }
//
// static __forceinline void set_cycles(int c)
// {
// }
//
// static __forceinline void events_schedule()
// {
//     int i;
//
//     uint mintime = ~0L;
//     for (i = 0; i < ev_max; i++)
//     {
//         if (eventtab[i].active)
//         {
//             uint eventtime = eventtab[i].evtime - currcycle;
//             if (eventtime < mintime)
//                 mintime = eventtime;
//         }
//     }
//     nextevent = currcycle + mintime;
// }
//
// static __forceinline void do_cycles_slow(uint cycles_to_add)
// {
//     if (is_lastline && eventtab[ev_hsync].evtime - currcycle <= cycles_to_add
//         && (long int)(read_processor_time() - vsyncmintime) < 0)
//         return;
//
//     while ((nextevent - currcycle) <= cycles_to_add)
//     {
//         int i;
//         cycles_to_add -= (nextevent - currcycle);
//         currcycle = nextevent;
//
//         for (i = 0; i < ev_max; i++)
//         {
//             if (eventtab[i].active && eventtab[i].evtime == currcycle)
//             {
//                 (*eventtab[i].handler)();
//             }
//         }
//         events_schedule();
//     }
//     currcycle += cycles_to_add;
// }
//
// static __forceinline void do_cycles_fast()
// {
//     if (is_lastline && eventtab[ev_hsync].evtime - currcycle <= 1
//         && (long int)(read_processor_time() - vsyncmintime) < 0)
//         return;
//
//     currcycle++;
//     if (nextevent == currcycle)
//     {
//         int i;
//
//         for (i = 0; i < ev_max; i++)
//         {
//             if (eventtab[i].active && eventtab[i].evtime == currcycle)
//             {
//                 (*eventtab[i].handler)();
//             }
//         }
//         events_schedule();
//     }
//
// }
//
// /* This is a special-case function.  Normally, all events should lie in the
//    future; they should only ever be active at the current cycle during
//    do_cycles.  However, a snapshot is saved during do_cycles, and so when
//    restoring it, we may have other events pending.  */
// static __forceinline void handle_active_events()
// {
//     int i;
//     for (i = 0; i < ev_max; i++)
//     {
//         if (eventtab[i].active && eventtab[i].evtime == currcycle)
//         {
//             (*eventtab[i].handler)();
//         }
//     }
// }
//
// static __forceinline uint get_cycles()
// {
//     return currcycle;
// }
//
// extern void init_eventtab();
//
// #if /* M68K_SPEED == 1 */ 0
//     #define do_cycles do_cycles_fast
// #else
//     #define do_cycles do_cycles_slow
// #endif